1. Field of the Invention
The present invention relates to a data processing apparatus, data processing method, and computer-readable storage medium.
2. Description of the Related Art
Conventionally, there is a data processing apparatus for performing data processing by connecting a plurality of modules by a unidirectional ring bus. For example, an apparatus in which each module includes one or more buffer or memory stages, and packets equal in number to the modules are allowed to exist in a ring bus and transferred in parallel between the modules has been proposed (Japanese Patent Laid-Open No. 10-167560).
Also, to improve the overall processing performance of the apparatus, a method in which priority is given to a packet containing data processed by a self-module and data to be processed by another module, each module determines the priority, and a packet that has a high priority is given preference for transfer has been proposed (Japanese Patent Laid-Open Nos. 10-167560 and 2007-316699).
For the above-mentioned priority, Japanese Patent Laid-Open No. 10-167560 has proposed a method to implement transfer corresponding to the priority by central control. However, implementing transfer corresponding to the priority by central control poses a problem in that a control circuit becomes proportionally complicated in according to the increase in the number of modules.
Japanese Patent Laid-Open No. 2007-316699 has proposed a packet transfer method using priority dispersed to each module. More specifically, modules are connected by two ring buses, that is, a data transfer bus and response transfer bus. If a certain module determines that a packet already transferred by the ring bus has priority lower than that of a packet to be transmitted by the module, the module discards the transferred packet, and sends, to the ring bus, the high-priority packet to be transmitted. Since the transferred packet is discarded, the module notifies another module of the loss of the packet by using the response transfer bus. The module notified of the loss retransmits the packet to the transmission source. In this manner, packet transfer corresponding to the priority is implemented.
Unfortunately, each of all the modules must hold the copy of a transmitted packet until it is confirmed that the packet is not discarded by another module. This poses the problem that the capacity of a buffer to hold the copies of transmitted packets increases in proportion to the increase in the number of modules. In addition, when using the two ring buses, that is, the data transfer bus and response transfer bus, packets unavoidably collide against each other in the response transfer bus in principle. Accordingly, each module must include a buffer capable of holding the copy of a transmitted packet, in addition to a buffer for a response packet that cannot be transmitted, by taking account of a delay before this response packet arrives at the transmission source. Even when using only one ring bus, a buffer having a capacity that does not break down even if a retransmission request for discarded data is delayed. That is, the packet transfer efficiency decreases accordingly.
When a packet is transferred according to its priority, data processing in each module is expected to operate based on the priority. However, when a data processing apparatus in which a plurality of modules are connected by a ring bus performs various kinds of processing by freely changing the number and order of modules to be used, packet transfer corresponding to the processing capability of each module is necessary to increase the overall efficiency of data processing.
The present invention has been made in consideration of the above situation, and provides a data processing to increase the packet transfer efficiency of a data processing apparatus by determining the priority of data by a simple mechanism.